自建PMS速度慢怎么办?聊聊Plex的设置和优化 您所在的位置:网站首页 plex 硬解 卡顿 自建PMS速度慢怎么办?聊聊Plex的设置和优化

自建PMS速度慢怎么办?聊聊Plex的设置和优化

2023-09-16 00:15| 来源: 网络整理| 查看: 265

折腾了这么多年Plex,从最开始对着进度条干瞪眼,到现在1080P几乎秒开,不得不感叹Plex是真的强大,也是真的复杂,其间踩过不少坑,也学了不少东西,中文圈子里对这些内容讨论非常少,所以分享一些观点和技巧出来,希望能让后人少走点弯路。

声明:读懂本文需要有一定VPS和PMS相关经验,本文不面向小白,不做科普,以思路讨论为主,不回答XX按钮在哪之类问题;所有内容基于个人理解,可能有错误或过时的地方,欢迎指出。

声明2:使用PMS代表你默认接受需要花费一定的毛爷爷,包括但不限于服务器、云储存、流量中转、硬件设备、客户端授权、Plex Pass等,这个钱可多可少,但是一定是要付出的,白嫖党可以散了。

声明3:以下内容基于VPS中无图形界面的Ubuntu 20.04运行的snap版PMS,且服务器不运行其他服务,请根据实际情况调整硬件和设置。

Plex从视频文件到你的屏幕,中间经历了很多环节,我将尝试从全新的角度入手,分析各个环节的影响因素以及优化方法。

储存和读取

没错,我打算从最最最基础的文件存取说起,首先你得有视频文件才可以看对吧。存取是很多人会忽略的,确实一般情况下这个不会成问题,但是也有坑的时候。

首先,你运行PMS的服务器(VPS/独服)需要有一定的硬盘容量(废话),具体需要多少视你的需求而定,如果你没有大盘鸡,可以考虑用plexdrive或者rclone挂载网盘(方法请善用搜索并多测试,挂载用的参数非常重要),如果这么做,我也建议你的小鸡最少要有50G的硬盘,因为rclone是需要本地缓存的,至少给它个20G吧。

另外一个非常重要的因素是硬盘IO,如果读取文件就很慢,整体自然不可能快,虽然PMS读文件一般是顺序读取,不太吃IO,但是也不排除有坑,比如我遇到过Average I/O speed = 31.8 kB/s的钻石盘= =需要注意的是,如果你在同一个小鸡上跑BT下载或者Resilio Sync之类的,硬盘性能需要更高一些才能同时满足两者,在选择时请务必充分测试。

服务端运行

PMS没有特别硬性的硬件要求,官网有一个参考。我实际跑下来感觉个人使用1G内存保底,对于刚好1G内存的小鸡,强烈建议加swap,否则扫描的时候内存可能会炸,进而导致IO占用大量CPU,整个服务器会卡死(如果你的PMS卡死了,先SSH过去top一下)。CPU官方建议是i3,我这里给一个不负责任的参考,想解1080P至少需要LemonBench跑分2000以上,还有不建议用arm。另外请避免资源限制严格的供应商,即使它跑分高,长时间占用资源可能会导致小鸡被suspend甚至封号,如果你多人/长时间使用或者经常解4K,建议上独服。

转码

这是一个值得大书特书的环节,我尽量讲简单点,毕竟我也很业余。如果你储存的视频文件不能直接串流,那么PMS会在服务端转码然后再串流,这个过程需要占用大量的CPU,所以我们的原则是,在网速允许的情况下应该尽量避免转码(高端独服玩家当我没说)。至于能不能直接串流,不止要看文件扩展名,还要看编码方式以及客户端种类,具体规则我没有研究清楚,但是Plex客户端(至少Windows和Android)比网页版支持的格式多,也就是说有些文件在网页版中必须转码,但是在客户端中可以直接串流;如果客户端也必须转码,可以试一试kodi+Plex插件,或许有奇效。

另外转码的设置也非常重要,如果你播放的分辨率和视频文件不一致,那么无论什么格式都是要转码的。如果网速允许,请在客户端的设置-质量中把视频质量设为最高,如果播放流畅,其他设置保持默认即可。如果你的小鸡转码性能有一点捉急(太捉急的就算了,应该直接扔掉),可以试试改一下设置-转码器中的Transcoder quality以及打开硬件转码,至于效果如何我就不知道了。如果你的小鸡性能很捉急(但是不知道为什么就是不想扔),但是老板心大不限制,那可以在闲置的时候把需要转码的视频转成指定的编码和分辨率,这样下次播放这个文件就可以不用转码了,具体方法在视频的菜单里有一个“优化”,优化后的文件在设置-视频优化版本中管理。

另外还有音频转码和字幕的问题……实在懒得研究,等搞清楚再补。

传输

就是视频流从服务器到你设备的过程。除了转码以外,传输是最容易成为瓶颈的环节,网络环境特别差时,并不是“多等一会”这么简单,可能根本无法加载。

如果你的服务器在本地,可以跳过这一节。

首先,请保证你的客户端和服务器是直连的,就是说设置里服务器名字显示“远程”状态。间接连接需要通过官方服务器中转,绕路严重,而且带宽有限制(详见官方文档),勉强可以管理,但是观看就别想了。直连需要保证端口没有占用且暴露在公网(可能需要设置VPS防火墙或者路由器端口转发),并且远程访问在开启状态。

在此前提之下,选择一台带宽充足、线路优秀的小鸡非常重要,关于线路以及TCP加速我不在这里科普了。如果你的小鸡线路不是非常优秀(但是带宽一定要够,1MB小水管就别想了),可以挂个高质量的代理。网上也有走Cloudflare CDN的教程,具体自己搜,效果是加速还是减速必须实测才知道,但是个人不太建议,好像Cloudflare的TOS禁止传输视频。

另外就是本地的网络环境,包括入户带宽、路由器/网线以及终端设备。对于非发烧友,这些现在不太可能成为瓶颈啦,不过遇到问题时先测个速是好习惯,公共WIFI可能有限速或者负载过高的问题,路由器故障或者信号干扰也挺常见的。哦还有DNS可能会影响速度(普遍情况来说是,具体到Plex我没测过),建议用国内较著名的公共DNS而非运营商分配的地址。

解码和播放

文件串流到你的终端设备后还需要解码才能变成图像和声音。现代的设备解码成为瓶颈的情况比较少见(智能电视除外),不过有些问题也应该注意一下,例如设备发烫、没有声音等,如果遇到这些问题,可以尝试从以下角度解决。

如果处理器性能不足导致卡顿、发烫等,可以考虑把视频转码成更低的分辨率播放(虽然我更建议扔了);如果是内存不足自己想办法(同上依然建议扔了);另外还可能是解码问题,可以尝试使用外部播放器,(Android客户端)在设置-高级-播放器中勾选“使用外部播放器”即可,然后外部播放器可能支持多种解码器(硬解、软解之类),可以都尝试一下看看哪个效果好。

哦还有一些少见的例外情况,比如小米家的某投影仪,Plex客户端卡成翔,用Kodi+Plex插件如丝般顺滑。

目前就想到这些,日后有新内容会再补充,如果有错误或者(非小白的)疑问也可以评论告诉我,就酱~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有